package com.jinyi.wwdeng.ui.launch.contract

import com.jinyi.base.mvp.IBasePresenter
import com.jinyi.base.mvp.IBaseView
import org.json.JSONObject

/**
 * JinYiTest
 *
 * @Author：wwdeng
 * @CreateTime：2024/4/14 18:30
 * <pre>
 *  契约接口
</pre> *
 */
interface LaunchContract {

    /**
     * model 层接口类
     */
    interface Model {
        /**
         * 获取地区转发
         */
        fun loadTimezoneRequest(params: JSONObject)

        /**
         * 加载APP 统一请求
         */
        fun loadAppInfoRequest(params: JSONObject)
    }

    /**
     * view 层接口类
     */
    interface View : IBaseView {
        /**
         * 获取转发地区成功
         */
        fun showTimeZoneSuccess(timeZone: String)

        /**
         * 进入权限申请
         * @param 需要申请的权限
         */
        fun showPermissionAction(permissings: String)

        /**
         * 不需要权限 或 权限已经获取
         *  进入登录页面
         */
        fun showLoginAction()

        /**
         * 已登录，进入主页
         */
        fun showMainAction()

        /**
         * 失败回调，展示失败提示
         * @param errorMsg
         */
        fun showFailure(errorMsg: String?)
    }

    /**
     * presenter 层接口类
     */
    interface Presenter: IBasePresenter {

        /**
         * 获取转发地区成功
         */
        fun onTimeZoneSuccess(data: JSONObject?)

        /**
         * APP 业务统一请求
         */
        fun onAppInfoSuccess(data: JSONObject?)

        /**
         * 失败回调，展示失败提示
         */
        fun onFailure(errorMsg: String?)
    }
}
